home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagg_m.zip / MATH.SWG / 0017_PRIMES1.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  78 lines

  1. {
  2. SAM HASINOFF
  3.  
  4. LoopNum forget who first asked this question, but here is some code to help
  5. you find your prime numbers in its entirety (tested):
  6. }
  7.  
  8. Uses
  9.   Crt;
  10.  
  11. Label
  12.   get_out;
  13. Var
  14.   LoopNum,
  15.   Count,
  16.   MinPrime,
  17.   MaxPrime,
  18.   PrimeCount : Integer;
  19.   Prime      : Boolean;
  20.   max        : String[20];
  21.   ECode      : Integer;
  22. begin
  23.   minprime := 0;
  24.   maxprime := 0;
  25.  
  26.   ClrScr;
  27.   Write('Lower limit For prime number search [1]: ');
  28.   readln(max);
  29.   val(max, minprime, ECode);
  30.  
  31.   if (minprime < 1) then
  32.     minprime := 1;
  33.   Repeat
  34.     GotoXY(1, 2);
  35.     ClrEol;
  36.     Write('Upper limit: ');
  37.     readln(max);
  38.     val(max, maxprime, ECode);
  39.   Until (maxprime > minprime);
  40.  
  41.   WriteLn;
  42.   PrimeCount := 0;
  43.  
  44.   For LoopNum := minprime to maxprime do
  45.   begin
  46.     prime := True;
  47.     Count := 2;
  48.  
  49.     While (Count <= (LoopNum div 2)) and (Prime) do
  50.     begin
  51.       if (LoopNum mod Count = 0) then
  52.         prime := False;
  53.       Inc(Count);
  54.     end;
  55.  
  56.     if (Prime) then
  57.     begin
  58.       Write('[');
  59.       TextColor(white);
  60.       Write(LoopNum);
  61.       TextColor(lightgray);
  62.       Write('] ');
  63.       Inc(PrimeCount);
  64.       if WhereX > 75 then
  65.         Write(#13#10);
  66.     end;
  67.     if WhereY = 24 then
  68.     begin
  69.       Write('-- More --');
  70.       ReadKey;
  71.       ClrScr;
  72.     end;
  73.     prime := False;
  74.   end;
  75.   Write(#13#10#10);
  76.   Writeln(PrimeCount, ' primes found.', #13#10);
  77. end.
  78.